#include "DataStructure/Input/Material/IsotropicMaterial.h"

#include "DataStructure/Common/Validation.h"

bool SG::DataStructure::FEM::operator== (IsotropicMaterial const& lhs, IsotropicMaterial const& rhs)
{
    if (!SG::DataStructure::Common::isNear (lhs.m_E, rhs.m_E))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_G, rhs.m_G))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_nu, rhs.m_nu))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_rho, rhs.m_rho))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_A, rhs.m_A))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_tref, rhs.m_tref))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_ge, rhs.m_ge))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_ST, rhs.m_ST))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_SC, rhs.m_SC))
    {
        return false;
    }
    if (!SG::DataStructure::Common::isNear (lhs.m_SS, rhs.m_SS))
    {
        return false;
    }
    if (lhs.m_mscId != rhs.m_mscId)
    {
        return false;
    }
    if (lhs.m_domainId != rhs.m_domainId)
    {
        return false;
    }
    return true;
}